home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 June / EnigmA AMIGA RUN 08 (1996)(G.R. Edizioni)(IT)[!][issue 1996-06][EARSAN CD VII].iso / earcd / comm2 / mmnnnc15.lha / MM_Annonce15 / REXX / MM_Annonce.rexx next >
OS/2 REXX Batch file  |  1996-04-20  |  4KB  |  168 lines

  1. /*
  2. ** $VER: MM_Annonce.rexx V1.5 (16.4.1996)
  3. **
  4. ** Written by Reinaldo Erdey
  5. **
  6. */
  7.  
  8. Options Results
  9.  
  10. /* ---------------------------------------------------------------------- */
  11. /* Ist Host vorhanden ? */
  12.  
  13. if ~show(p,"MAILMANAGER") then
  14.     do
  15.        Say
  16.        Say 'Warning: MailManager is not present'
  17.        Say
  18.        Exit
  19. end
  20. /* ---------------------------------------------------------------------- */
  21. /* Variablen Init */
  22.  
  23. Address 'MAILMANAGER'
  24.  
  25. MM_GetSysop Sysop
  26. MM_GetAddrs Domain
  27.  
  28. LineLaeng     = 80
  29. FileNamelaeng = 13
  30. Sizelaeng     = 9
  31. MaxPost       = 100
  32.  
  33. LogArea    = 'MAIL:Ticks/'
  34. MSG.FILE    = 'T:Annonce.tmp'
  35. Gefunden    = 'NEIN'
  36.  
  37. MM_GetSysop Sysop
  38. MM_GetAddrs Domain
  39. MM.Area         = 'PLAYFIELD.ANNOUNCE'
  40. MM.PrgName        = 'Annonce 1.5'
  41. MSG.FROM        = Sysop
  42. MSG.FROMADDR    = Domain.0
  43. MSG.TO        = 'All'
  44. MSG.TOADDR        = ''
  45. MSG.SUBJ        = 'NEWFILES'
  46. MSG.FLAGS        = 'PVT'
  47. MSG.TEAR        = MM.PrgName
  48.  
  49. SAS1 = 0
  50. SAS2 = 0
  51. SAS3 = 0
  52.  
  53. MAIN:
  54.  
  55. MM_GetTickAreas TArea
  56.  
  57. If TArea.count ~= 0 then do
  58.    Call CheckOfLogs
  59. End
  60.  
  61. If Gefunden = 'JA' then do
  62.          TextTmp = TextTmp||d2c(10)||' Total files listed: 'SAS3' ('SAS2' Bytes)'||d2c(10)
  63.          TextTmp = TextTmp||d2c(10)
  64.          TextTmp = TextTmp||d2c(10)
  65.          MM_AddToStem tmp.TEXT 'TextTmp'
  66.          MM_WriteStem MSG.FILE Tmp.TEXT
  67.          MM_Export MM.Area
  68.          Call WriteMsg
  69. End
  70.  
  71. Exit
  72.  
  73. /* ---------------------------------------------------------------------- */
  74. CheckOfLogs:
  75.  
  76. TextTmp = 'Hi Leute !!'||d2c(10)||d2c(10)
  77. TextTmp = TextTmp||'Neue Files sind eingetroffen:'||d2c(10)
  78. TextTmp = TextTmp||'-----------------------------'||d2c(10)
  79. Cont = 0
  80. DO b = 0 FOR TArea.count
  81.    Call MakeMsg
  82.    TArea.count = TArea.b
  83.    Cont = Cont + 1
  84. END
  85. Return
  86.  
  87. /* ---------------------------------------------------------------------- */
  88. MakeMsg:
  89.  
  90. If ~exists(LogArea||TArea.b||".log") then do
  91.     Return
  92. End
  93.  
  94. MM_GetTickAreaInfo TArea.b AreaInfo
  95. TextTmp = TextTmp||d2c(10)'AREA: 'TArea.b' - 'AreaInfo.DESC||d2c(10)
  96. TextTmp = TextTmp||left('',(Length('AREA: 'TArea.b' - 'AreaInfo.DESC)),'-')||d2c(10)||d2c(10)
  97.  
  98. Gefunden = 'JA'
  99.  
  100. MM_ReadStem (LogArea||TArea.b||".log") LogMsg
  101.  
  102. IF LogMsg.count >0 THEN DO
  103.    MM_SortStem LogMsg
  104.    Cont = 0
  105.    DO c = 0 FOR LogMsg.count
  106.      Parse VAR LogMsg.c FileName FileSizes Comment
  107.      Comment = Strip(Comment)
  108.      if Length(FileName) >FileNamelaeng then do
  109.         FileName = substr(FileName,1,12.'')||'*'
  110.      End
  111.      if Length(Comment) >LineLaeng-(FileNamelaeng+Sizelaeng+1) then do
  112.         Call SplitComment
  113.      End
  114.      TextTmp = TextTmp||left(FileName,FileNamelaeng,' ')||right(FileSizes,Sizelaeng,' ')||' '||Comment||d2c(10)
  115.      LogMsg.count = LogMsg.c
  116.      Cont = Cont + 1
  117.      SAS1 = SAS1+FileSizes
  118.    END
  119.    LogMsg.count = Cont
  120. END
  121. TextTmp = TextTmp||d2c(10)||' 'c' file(s) with 'SAS1' bytes in this area'||d2c(10)
  122. SAS2 = SAS2+SAS1
  123. SAS1 = 0
  124. SAS3 = SAS3+c
  125. MM_DeleteFile (LogArea||TArea.b||".log")
  126. RETURN
  127.  
  128. /* ---------------------------------------------------------------------- */
  129.  
  130. SplitComment:
  131.  
  132. SplitCom = Comment
  133. Comment = ''
  134. do x = 1 FOR MaxPost
  135.    DO z = 1 FOR Words(SplitCom)
  136.       If Length(Delword(SplitCom,z,(Words(SplitCom)+1))) <LineLaeng-(FileNamelaeng+Sizelaeng+1) Then do
  137.          z1 = Length(Delword(SplitCom,z,Words(SplitCom)))
  138.          z2 = Length(SplitCom)-z1
  139.          ComTmp = Strip(left(SplitCom,z1,''))
  140.          ComTmpA = Strip(right(SplitCom,z2,''))
  141.       End
  142.    End
  143.    if x = 1 then Comment = ComTmp||d2c(10)
  144.    if x >1 then Comment = Comment||right('',(FileNamelaeng+Sizelaeng+1),' ')||ComTmp||d2c(10)
  145.    if Length(ComTmpA)<LineLaeng-(FileNamelaeng+Sizelaeng+1) Then do
  146.       Comment = Comment||right('',(FileNamelaeng+Sizelaeng+1),' ')||ComTmpA
  147.       Leave
  148.    End
  149.    SplitCom = ComTmpA
  150. End
  151. Return
  152.  
  153.  
  154. /* ---------------------------------------------------------------------- */
  155.  
  156. WriteMsg:
  157.  
  158. If ~exists(MSG.FILE) then do
  159.     Return
  160. End
  161.  
  162. MM_WriteMsg MM.Area 'MSG'
  163. MM_DeleteFile MSG.FILE
  164.  
  165. Return
  166.  
  167. /* ---------------------------------------------------------------------- */
  168.